#ifndef DEVICE_WINDOW_MANAGER_WIN
#define DEVICE_WINDOW_MANAGER_WIN

    #include "../device.h"
    #include "../../../define.h"
    #if defined win_device_support
    #include <windows.h>

    namespace sleek
    {
        namespace core
        {
            namespace device
            {
                class Device_win : public Device
                {
                    public:
                        Device_win(Device_stub);
                        virtual ~Device_win();

                        virtual void begin(texture::pixel);
                        virtual bool run();
                        virtual void end();
                        virtual void exit();

                        virtual void makeRenderContext(GL_RENDER_CONTEXT);
                        virtual void destroyRenderContext(GL_RENDER_CONTEXT);
                        virtual void switchToRenderContext(GL_RENDER_CONTEXT i);

                        virtual void enableWindowDecorator(bool);
                        virtual core::math::vector2di getDesktopVideoSize();
                        virtual void setWindowPos(math::vector2di);

                        virtual void setGamma(texture::pixel);
                        virtual void setCaption(os::stringc);
                        virtual void setVideoSize(math::vector2di);
                        virtual void setFullScreen(bool);
                    protected:
                        Device_win(){}
                        HWND screen;
                        HGLRC gl[4];
                        HDC dc;
                        WNDCLASS wc;
                        PIXELFORMATDESCRIPTOR pfd;
                        virtual void initOpenCL();
                    private:
                        friend Device* CreateDeviceWindowManager(DeviceWindowManager, Device_stub);
                };
            }
        }
    }
    #endif
#endif

